/**
 * 
 */
package com.ms.service.module.baccarat.message;

import java.util.ArrayList;

import com.ms.service.module.baccarat.BacrBetInfo;
import com.ms.service.module.baccarat.BacrCard;
import com.ms.service.module.baccarat.BacrGameResult;
import com.ms.service.module.baccarat.BacrGameStatus;
import com.ms.service.module.baccarat.bin.BacrTableSettingInfo;

/**
 * 初始資料
 * 
 * @author TW15010
 */
public class SBacrInitData {
	/**
	 * 局號
	 */
	private String roundNumber;

	/**
	 * 目前階段 {@link BacrGameStatus}
	 */
	private byte currentStep;

	/**
	 * 目前階段開始時間
	 */
	private long beginTime;

	/**
	 * 下一階段開始時間
	 */
	private long nextStepBeginTime;

	/**
	 * 檯面上的押注資訊列表
	 */
	private ArrayList<BacrBetInfo> betInfoList;

	/**
	 * 自己的押注資訊列表
	 */
	private ArrayList<BacrBetInfo> selfBetInfoList;

	/**
	 * 勝負記錄列表
	 */
	private ArrayList<BacrGameResult> gameRecordList;

	/**
	 * 這一鋪所需的牌的 index list
	 */
	private ArrayList<Integer> cardIndexList;

	/**
	 * 閒的牌列表
	 */
	private ArrayList<BacrCard> playerCards;

	/**
	 * 莊的牌列表
	 */
	private ArrayList<BacrCard> bankerCards;

	/**
	 * 是否有在中途離開過
	 */
	private boolean haveLeave;

	/**
	 * 牌靴裡的牌是否為紅卡
	 */
	private boolean redCardInShoe;

	/**
	 * 是否為最後一舖牌
	 */
	private boolean lastHand;
	
	/**
	 * 活動連勝相關資訊
	 */
	private SBacrActivityCombosData activityCombosData;

	/**
	 * 牌桌設定
	 */
	private BacrTableSettingInfo tableSetting;

	public byte getCurrentStep() {
		return currentStep;
	}

	public void setCurrentStep(byte currentStep) {
		this.currentStep = currentStep;
	}

	public long getBeginTime() {
		return beginTime;
	}

	public void setBeginTime(long beginTime) {
		this.beginTime = beginTime;
	}

	public long getNextStepBeginTime() {
		return nextStepBeginTime;
	}

	public void setNextStepBeginTime(long nextStepBeginTime) {
		this.nextStepBeginTime = nextStepBeginTime;
	}

	public ArrayList<BacrGameResult> getGameRecordList() {
		return gameRecordList;
	}

	public void setGameRecordList(ArrayList<BacrGameResult> gameRecordList) {
		this.gameRecordList = gameRecordList;
	}

	public ArrayList<BacrCard> getPlayerCards() {
		return playerCards;
	}

	public void setPlayerCards(ArrayList<BacrCard> playerCards) {
		this.playerCards = playerCards;
	}

	public ArrayList<BacrCard> getBankerCards() {
		return bankerCards;
	}

	public void setBankerCards(ArrayList<BacrCard> bankerCards) {
		this.bankerCards = bankerCards;
	}

	public boolean isRedCardInShoe() {
		return redCardInShoe;
	}

	public void setRedCardInShoe(boolean redCardInShoe) {
		this.redCardInShoe = redCardInShoe;
	}

	public ArrayList<BacrBetInfo> getBetInfoList() {
		return betInfoList;
	}

	public void setBetInfoList(ArrayList<BacrBetInfo> betInfoList) {
		this.betInfoList = betInfoList;
	}

	public ArrayList<BacrBetInfo> getSelfBetInfoList() {
		return selfBetInfoList;
	}

	public void setSelfBetInfoList(ArrayList<BacrBetInfo> selfBetInfoList) {
		this.selfBetInfoList = selfBetInfoList;
	}

	public boolean isHaveLeave() {
		return haveLeave;
	}

	public void setHaveLeave(boolean haveLeave) {
		this.haveLeave = haveLeave;
	}

	public ArrayList<Integer> getCardIndexList() {
		return cardIndexList;
	}

	public void setCardIndexList(ArrayList<Integer> cardIndexList) {
		this.cardIndexList = cardIndexList;
	}

	public boolean isLastHand() {
		return lastHand;
	}

	public void setLastHand(boolean lastHand) {
		this.lastHand = lastHand;
	}

	public String getRoundNumber() {
		return roundNumber;
	}

	public void setRoundNumber(String roundNumber) {
		this.roundNumber = roundNumber;
	}

	public SBacrActivityCombosData getActivityCombosData() {
		return activityCombosData;
	}

	public void setActivityCombosData(SBacrActivityCombosData activityCombosData) {
		this.activityCombosData = activityCombosData;
	}

	public BacrTableSettingInfo getTableSetting() {
		return tableSetting;
	}

	public void setTableSetting(BacrTableSettingInfo tableSetting) {
		this.tableSetting = tableSetting;
	}
}
